#include <stdio.h>

int main0()
{
    int a[10] = {1,2,3,4,5,6,7,8,9,10};
    int *p = a;//指针p指向a的首地址

    p[3] = 100;
    // 等价于下面这句话
    // 上面的写法简单
    // 下面的写法直观，但是繁琐
    // C语言最求简单，直接，不啰嗦
    //*(p + 3) = 100;
    //p + 5等于&a[5],a数组的第五个元素的值的地址
    int i;
    for(i = 0; i < 10; i++)
    {
        printf("a[%d] = %d\n", i, a[i]);
    }


    return 0;
}

// c语言中的所有数据类型都可以理解为一个char类型的数组
int main()
{
    int a = 0x12345678;
    char *p = (char *)&a;
    printf("%x\n", *p);
    *p = 0;
    p[2] = 12;
    printf("%x\n", a);
    printf("-------------");

    char b[20] = { 0 };
    int *p1 = (int *)b;
    p1[3] = 0x12345678;
    int i;
    for(i = 0; i < 20; i++)
    {
        printf("b[%d] = %x\n", i, b[i]);
    }
    return 0;
}
